Initiate a state change on the named cluster, such as a shutdown or restart.
MarkLogic Server returns status code 202 (Accepted). The response body includes a list of restarted hosts and their last start times.
manage-admin
role, or the following
privilege: http://marklogic.com/xdmp/privileges/manage-admin
The POST body must contain the state
parameter, as HTML form data. For
example: state=restart
.
You cannot initiate a state change on a foreign cluster.
You can address the local cluster at /manage/v2, without specifying the
full /manage/v2/clusters/{id|name}
.
$ curl --anyauth --user user:password -X POST --data "state=shutdown" \ http://localhost:8002/manage/v2/clusters/123409234245 ==> Initiate a shutdown of the local cluster using the cluster id. MarkLogic responds with output similar to the following. This output represents a 2-host cluster. Content-type: application/xml Server: MarkLogic Content-Length: 160 Connection: Keep-Alive Keep-Alive: timeout=5 HTTP/1.1 202 Accepted Content-type: application/xml Cache-Control: no-cache Expires: -1 Server: MarkLogic Content-Length: 313 Connection: Keep-Alive Keep-Alive: timeout=5 <shutdown xmlns="http://marklogic.com/manage"> <last-startup host-id="13544732455686476949"> 2013-09-21T09:45:07.936648-07:00</last-startup> <last-startup host-id="11346873982344721834"> 2013-09-21T09:45:07.57723-07:00 </last-startup> <message>Shutdown of cluster (17224434944267874968) initiated.</message> </shutdown> The following is the equivalent JSON output: { "shutdown": { "last-startup": [ { "host-id": "13544732455686476949", "value": "2013-09-21T09:55:40.567285-07:00" }, { "host-id": "11346873982344721834", "value": "2013-09-21T09:55:40.567285-07:00" } ], "link": { "kindref": "timestamp", "uriref": "/admin/v1/timestamp" }, "message": "Check for new timestamp to verify host restart." } }
$ curl --anyauth --user user:password -i -X POST --data "state=restart" \ http://localhost:8002/manage/v2 ==> Initiate a restart of the local cluster, using the /manage/v2 shorthand. Use the returned restart information and the timestamp service to determine when the restart is complete. The output below represents a 2-host cluster. Content-type: application/xml Server: MarkLogic Content-Length: 160 Connection: Keep-Alive Keep-Alive: timeout=5 HTTP/1.1 202 Accepted Content-type: application/xml Cache-Control: no-cache Expires: -1 Location: /admin/v1/timestamp Server: MarkLogic Content-Length: 383 Connection: Keep-Alive Keep-Alive: timeout=5 <restart xmlns="http://marklogic.com/manage"> <last-startup host-id="13544732455686476949"> 2013-09-21T09:44:49.498658-07:00 </last-startup> <last-startup host-id="11346873982344721834"> 2013-09-21T09:44:49.434052-07:00 </last-startup> <link> <kindref>timestamp</kindref> <uriref>/admin/v1/timestamp</uriref> </link> <message>Check for new timestamp to verify host restart.</message> </restart> The following is the equivalent JSON output: { "restart": { "last-startup": [ { "host-id": "13544732455686476949", "value": "2013-09-21T09:55:40.567285-07:00" }, { "host-id": "11346873982344721834", "value": "2013-09-21T09:55:40.567285-07:00" } ], "link": { "kindref": "timestamp", "uriref": "/admin/v1/timestamp" }, "message": "Check for new timestamp to verify host restart." } }
$ curl --anyauth --user user:password -X POST -i --data "state=restart" \ -H "Accept: application/json" http://localhost:8002/manage/v2 ==> Initiate a restart of the local cluster, using the /manage/v2 shorthand. Output is returned as JSON, due to the Accept header. The output below represents a 2-host cluster. <apidoc:function name="/manage/v2/servers/{id|name}" http-verb="DELETE" lib="manage" category="Management API" bucket="REST Resources API" subcategory="App Servers"> <apidoc:summary> This resource address deletes the specified App Server from the specified group. </apidoc:summary> <apidoc:params> <apidoc:param name="group-id" type="string"> The id or name of the group to which the App Server belongs. This parameter is required. </apidoc:param> <apidoc:param name="format" type="string"> The format of the posted data. Can be either <code>html</code>, <code>json</code>, or <code>xml</code> (default). This value overrides the Accept header if both are present. </apidoc:param> </apidoc:params> <apidoc:headers> <apidoc:header name="Accept" type="request"> The expected MIME type of the request body. If the <code>format?</code> parameter is present, it takes precedence over the Accept header. </apidoc:header> </apidoc:headers> <apidoc:response> Upon success, MarkLogic Server returns a status code 202 (Accepted) if the request causes a restart, or status code 204 (No Content) if the request does not cause a restart. When 202 is returned, the standard <code>restart</code> payload body is also returned. If the payload is malformed or the group does not exist, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges. </apidoc:response> <apidoc:privilege> This operation requires the <code>manage-admin</code> role, or the following privilege: <p><code>http://marklogic.com/xdmp/privileges/manage-admin</code></p> </apidoc:privilege> <apidoc:example><pre xml:space="preserve"><![CDATA[ curl -X DELETE --anyauth -u $admin:$admin -H "Accept: application/json" \ http://localhost:8002/manage/v2/servers/myServer?group-id=Default&format=json ==> Deletes the HTTP App Server, named "myServer," from the Default group.
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.